/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fi.jamk.rekisteri;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 *
 * @author f0899
 */
public class HenkiloTesti {

    public static void main(String args[]) {
        {
            //luodaan rekisteri henkilöistä
            Rekisteri henkilot = new Rekisteri(100);

            //luodaan henkilöitä

            Henkilo h[] = new Henkilo[100];
          
            h[1] = new Henkilo("Matti", "Nykänen", "sotuyksi");
            h[2] = new Henkilo("pekka", "pouta", "sotukaksi");
            h[3] = new Henkilo("testi", "henkilo", "sotukolme");
            h[4] = new Henkilo("jep", "jeee", "432");

            //lisätään henkilöt
            for (int e = 1; e < 5; e++) {
                if (henkilot.lisaaHenkilo(h[e])) {
                    System.out.println("Lisätty!");
                } else {
                    System.out.println("Ei lisätty!");
                }
            }

            //kirjoitetaan henkilöt levylle

            FileOutputStream fileOut = null;
            ObjectOutputStream objOut = null;

            try {
                //luodaan binäärinen virta, tied. kirjoittamiseen
                fileOut = new FileOutputStream(new File("henkilot.dat"));
                //luodaan oliovirta edelliseen bin. virtaan
                objOut = new ObjectOutputStream(fileOut);
                //kirjoitetaan henkilö oliovirtaan
                objOut.writeObject(henkilot);
                System.out.println("Tiedostoa muokattiin!");
            } catch (FileNotFoundException e) {
                System.out.println("Tiedostoa ei saada luotua!");
                return;
            } catch (IOException e) {
                System.out.println("IO-virhe!");
                return;
            } finally {
                if (objOut != null) {
                    try {
                        objOut.close();
                        System.out.println("Tiedosto suljettiin!");
                    } catch (IOException e) {
                        System.out.println("Tiedostoa ei saada suljettua!");
                        return;
                    }
                }
            }
            FileInputStream fileIn = null;
            ObjectInputStream objIn = null;

            try {
                fileIn = new FileInputStream(new File("henkilot.dat"));
                objIn = new ObjectInputStream(fileIn);
                henkilot = (Rekisteri) objIn.readObject();
            } catch (FileNotFoundException e) {

                System.out.println("Tiedostoa ei löydy!");
                return;
            } catch (IOException e) {
                System.out.println("Tiedostoa ei voi lukea!");
                return;
            } catch (ClassNotFoundException e) {
                System.out.println("Tiedosto on korruptoitunut!");
                return;
            }
            //tallenna rekisterin tiedot henkilöiksi
            h[1] = henkilot.palautaHenkilo(0);
            h[2] = henkilot.palautaHenkilo(1);
            h[3] = henkilot.palautaHenkilo(2);
            h[4] = henkilot.palautaHenkilo(3);
            //palauta henkilöt
            System.out.println(h[1].palautaTiedot());
            System.out.println(h[2].palautaTiedot());
            System.out.println(h[3].palautaTiedot());
            System.out.println(h[4].palautaTiedot());
        }
    }
}
